<?php

namespace Ecom\ProdutosBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Ecom\ProdutosBundle\Entity\Produto
 *
 * @ORM\Table(name="ecom_produto_produto")
 * @ORM\Entity
 */
class Produto {

    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string $nome
     *
     * @ORM\Column(name="nome", type="string", length=255, nullable=false, unique=true)
     */
    private $nome;

    /**
     * @var text $descricao
     *
     * @ORM\Column(name="descricao", type="text", nullable=true)
     */
    private $descricao;

    /**
     * @var decimal $preco
     *
     * @ORM\Column(name="preco", type="decimal", nullable=true)
     */
    private $preco;

    /**
     * @var integer $quantidade
     *
     * @ORM\Column(name="quantidade", type="integer", nullable=true)
     */
    private $quantidade;

    /**
     * @var Categoria
     *
     * @ORM\ManyToMany(targetEntity="Categoria", inversedBy="produto")
     * @ORM\JoinTable(name="ecom_produto_categoria_produto",
     *   joinColumns={
     *     @ORM\JoinColumn(name="produto_id", referencedColumnName="id")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="categoria_id", referencedColumnName="id")
     *   }
     * )
     */
    private $categoria;

    public function __construct() {
        $this->categoria = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Método necessário para listas em outros CRUD
     * 
     * @return string
     */
    public function __toString() {
        return $this->getNome();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set nome
     *
     * @param string $nome
     */
    public function setNome($nome) {
        $this->nome = $nome;
    }

    /**
     * Get nome
     *
     * @return string 
     */
    public function getNome() {
        return $this->nome;
    }

    /**
     * Set descricao
     *
     * @param text $descricao
     */
    public function setDescricao($descricao) {
        $this->descricao = $descricao;
    }

    /**
     * Get descricao
     *
     * @return text 
     */
    public function getDescricao() {
        return $this->descricao;
    }

    /**
     * Set preco
     *
     * @param decimal $preco
     */
    public function setPreco($preco) {
        $this->preco = $preco;
    }

    /**
     * Get preco
     *
     * @return decimal 
     */
    public function getPreco() {
        return $this->preco;
    }

    /**
     * Set quantidade
     *
     * @param integer $quantidade
     */
    public function setQuantidade($quantidade) {
        $this->quantidade = $quantidade;
    }

    /**
     * Get quantidade
     *
     * @return integer 
     */
    public function getQuantidade() {
        return $this->quantidade;
    }

    /**
     * Add categoria
     *
     * @param Ecom\ProdutosBundle\Entity\Categoria $categoria
     */
    public function addCategoria(\Ecom\ProdutosBundle\Entity\Categoria $categoria) {
        $this->categoria[] = $categoria;
    }

    /**
     * Set categoria
     *
     * @param EcomProdutoCategoria $categoria
     */
    public function setCategoria() {
        return $this->categoria;
    }

    /**
     * Get categoria
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getCategoria() {
        return $this->categoria;
    }

    /**
     * Get atributo(Função que serve para o campo autocomplete)
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getAtributo() {
    }
    
    /**
     * Set atributo(Função que serve para o campo autocomplete)
     *
     * @param EcomProdutoAtributo $atributo
     */
    public function setAtributo(){
        
    }

    /**
     * Get atributo(Função que serve para o campo autocomplete)
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getModelo() {
       
    }
    
    
    /**
     * Set atributo(Função que serve para o campo autocomplete)
     *
     * @param EcomProdutoAtributo $atributo
     */
    public function setModelo(){
        
    }
    
    
    

}